package com.cheng.im.service.friendship.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.cheng.im.service.common.model.RequestBase;
import com.cheng.im.service.common.model.SyncReq;
import com.cheng.im.service.common.model.SyncResp;
import com.cheng.im.service.common.resp.CommonResult;
import com.cheng.im.service.frienship.domain.ImFriendship;
import com.cheng.im.service.frienship.model.req.*;
import com.cheng.im.service.frienship.model.resp.CheckFriendShipResp;
import com.cheng.im.service.frienship.model.resp.ImportFriendShipResp;

import java.util.List;


public interface ImFriendshipService extends IService<ImFriendship> {

    /**
     * 批量导入好友关系列表
     * @param req
     * @return
     */
    public CommonResult<ImportFriendShipResp> importFriendShip(ImporFriendShipReq req);

    /**
     * 添加好友
     * @param req
     * @return
     */
    public CommonResult addFriend(AddFriendReq req);

    public CommonResult updateFriend(UpdateFriendReq req);

    CommonResult doUpdate(String fromId, FriendDto dto,String appId);

    public CommonResult deleteFriend(DeleteFriendReq req);

    public CommonResult deleteAllFriend(DeleteFriendReq req);

    public CommonResult<List<ImFriendship>> getAllFriendShip(GetAllFriendShipReq req);

    public CommonResult<ImFriendship> getRelation(GetRelationReq req);

    public CommonResult doAddFriend(RequestBase requestBase, String fromId, FriendDto dto, String appId);

    public CommonResult<List<CheckFriendShipResp>> checkFriendship(CheckFriendShipReq req);

    public CommonResult addBlack(AddFriendShipBlackReq req);

    public CommonResult deleteBlack(DeleteBlackReq req);

    public CommonResult<List<CheckFriendShipResp>> checkBlack(CheckFriendShipReq req);

    public CommonResult<SyncResp<ImFriendship>> syncFriendshipList(SyncReq req);

    public List<String> getAllFriendId(String userId, String appId);
}
